/***
 * Copyright (c) 2009 Caelum - www.caelum.com.br/opensource
 * All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * 	http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package br.com.caelum.vraptor.blank;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import br.com.caelum.vraptor.Path;
import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;
import br.com.caelum.vraptor.view.Results;
import br.ufpb.lavid.pamin.daos.ConexaoDao;
import br.ufpb.lavid.pamin.modelos.Evento;
import br.ufpb.lavid.pamin.modelos.Eventoo;

@Resource
public class IndexController {

	private final Result result;

	public IndexController(Result result) {
		this.result = result;
	}

	@Path("/")
	public void index() {
		List<Evento> eventos = new ArrayList<Evento>();
		
		ConexaoDao c = new ConexaoDao();
		c.conectar();
		Statement statement = c.getStatement();
		

		ResultSet resultado;
		try {
			resultado = statement.executeQuery("select e.nomeevento, l.latitude, l.longitude, l.logradouro from evento e inner join lugar l on e.fklugar = l.idlugar where e.dteventoini > (now() - '2 month'::INTERVAL) and e.dteventoini < (now() + '2 month'::INTERVAL);");
			
			while(resultado.next()){
	    		
	    		Evento evento = new Evento();
	    		
	    		evento.setNome(resultado.getString("nomeevento"));
	    		
	    		evento.setLatitude(resultado.getDouble("latitude"));
	    		
	    		evento.setLongitude(resultado.getDouble("longitude"));
	    		
	    		evento.setEndereco(resultado.getString("logradouro"));
	    		
	    		eventos.add(evento);
	   	 		
	    	}//while
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}   //consulta a tabela evento na ordem decrescente
		result.use(Results.json()).from(eventos).serialize();
    	
		
	}

}
